package day03.Standard_Homework;

public class Standard_Homework {
    public static void main(String[] args) {
        //语言基础第三天标准练习:
        //列表:
        /*
        1. 运算符的练习：算术、关系、逻辑、赋值、字符串连接、条件
        2. 分支结构的练习：if结构
        3. 分支结构的练习：if...else结构
        4. 分支结构的练习：if...else if结构
        */

        //参考:
        /*
          1. 运算符的练习：算术
            1) 输出几个整数取模，验证结果
                //第一遍:
                    System.out.println(6 % 3);  //输出结果为0----整除
                //第二遍:
                    System.out.println(5 % 3);  //输出结果为2

            2) 声明两个整型变量，演示单独使用时的自增和自减
                //第一遍:
                    int a = 5, b = 10;
                    a++;
                    --b;
                    System.out.println(a);  //输出结果为6
                    System.out.println(b);  //输出结果为9
                //第二遍:
                    int c = 3, d = 6;
                    --c;
                    ++d;
                    System.out.println(c);  //输出结果为2
                    System.out.println(d);  //输出结果为7

            3) 声明几个整型变量，演示被使用时的自增和自减
                //第一遍:
                    int e = 8, f = 5;
                    int g = ++e;
                    int h = f--;
                    System.out.println(g);  //输出结果为9
                    System.out.println(h);  //输出结果为5
                //第二遍:
                    int a1 = 12, b1 = 16;
                    int c1 = a1++ + --b1;
                    int d1 = ++b1 + --a1;
                    System.out.println(c1); //输出结果为27
                    System.out.println(d1); //输出结果为28

           参考代码:
            System.out.println(5%2); //1，商2余1
            System.out.println(8%2); //0，商4余0----整除
            System.out.println(2%8); //2，商0余2
            //单独用----自增
            int a=5,b=5;
            a++; //相当于a=a+1
            ++b; //相当于b=b+1
            System.out.println(a); //6
            System.out.println(b); //6
            //单独用----自减
            int a=5,b=5;
            a--; //相当于a=a-1
            --b; //相当于b=b-1
            System.out.println(a); //4
            System.out.println(b); //4
            //被使用----自增
            int a=5,b=5;
            int c = a++; //1)将a++的值5赋值给c 2)a自增1变为6
            int d = ++b; //1)将++b的值6赋值给d 2)b自增1变为6
            System.out.println(a); //6
            System.out.println(b); //6
            System.out.println(c); //5
            System.out.println(d); //6
            //被使用----自减
            int a=5,b=5;
            int c = a--; //1)将a--的值5赋值给c 2)a自减1变为4
            int d = --b; //1)将--b的值4赋值为d 2)b自减1变为4
            System.out.println(a); //4
            System.out.println(b); //4
            System.out.println(c); //5
            System.out.println(d); //4
        */

        /*
          2. 运算符的练习：关系
            1) 声明几个变量，演示最基本的>，<，>=，<=，==，!=操作
                //第一遍:
                int a2 = 8, b2 = 10;
                System.out.println(a2 >= b2);    //输出结果为false
                //第二遍:
                int c2 = 15;
                int d2 = 15;
                System.out.println(c2 == d2);   //输出结果为true

            2) 演示关系运算符和算术运算符联合使用的效果
                //第一遍:
                int a3 = 15, b3 = 10;
                System.out.println(a3 % b3 == 5);    //输出结果为true
                //第二遍:
                int c3 = 15, d3 = 5;
                System.out.println(c3 / d3 != 3);   //输出结果为false

           参考代码:
            int a=5,b=10,c=5;
            boolean b1 = b>a;
            System.out.println(b1); //true
            System.out.println(c<b); //true
            System.out.println(a>=c); //true
            System.out.println(b<=a); //false
            System.out.println(b==c); //false
            System.out.println(a!=c); //false
            System.out.println(a+c>10); //false
            System.out.println(b%2==0); //true
            System.out.println(c++>5); //false------c自增1变为6
            System.out.println(c++>5); //true-------c自增1变为7
        */

        /*
          3. 运算符的练习：逻辑
            1) 声明三个整型变量，演示&&和||，演示!
                1. &&的演示要求：true+false、false+true、true+true、false+false
                2. ||的演示要求：true+false、false+true、true+true、false+false
                3. !的演示要求：true、false
                //第一遍:
                    int a4 = 10, b4 = 15, c4 = 10;
                    boolean b11 = a4 == c4 && b4 != c4;
                    System.out.println(b11);  //输出结果为true
                //第二遍:
                    int a5 = 20, b5 = 18, c5 = 25;
                    boolean b12 = (a5 / b5 == 1) || (c5 % b5 != 7);
                    System.out.println(b12);    //输出结果为true

            2) 演示短路&&与短路||
                //第一遍:
                    int a6 = 8, b6 = 9, c6 = 18;
                    boolean b13 = (c6 / b6 != 2) && (b6 % a6 == 1);
                    System.out.println(b13);    //输出结果为false----发生了短路效应
                //第二遍:
                    int a7= 12, b7 = 22, c7 = 34;
                    boolean b14 = (b7 - a7 == 10) || (c7 / b7 == 2);
                    System.out.println(b14);    //输出结果为true----发生了短路效应

           参考代码:
            int a=5,b=10,c=5;
            //演示&&
            boolean b1 = b>=a && b<c;
            System.out.println(b1); //true&&false=false
            System.out.println(b<=c && b>a); //false&&true=false
            System.out.println(a==b && c>b); //false&&false=false
            System.out.println(b!=c && a<b); //true&&true=true
            //演示||
            System.out.println(b>=a || b<c); //true||false=true
            System.out.println(b<=c || b>a); //false||true=true
            System.out.println(b!=c || a<b); //true||true=true
            System.out.println(a==b || c>b); //false||false=false
            //演示!
            boolean b2 = !(a<b);
            System.out.println(b2); //!true=false
            System.out.println(!(a>b)); //!false=true
            //演示&&的短路
            int a=5,b=10,c=5;
            boolean b3 = a>b && c++>2;
            System.out.println(b3); //false
            4. 运算符的练习：赋值
            声明一个整型变量，演示扩展赋值+=、-=、*=、/=、%=的效果
            声明short型变量s，演示简单赋值运算的自增10，演示扩展赋值运算的自增10
            参考代码：
            5. 运算符的练习：字符串连接
            声明整型变量age和字符串型变量name，输出字符串连接的结果
            输出几个数据的拼接，演示字符串连接的同化作用
            参考代码：
            6. 运算符的练习：条件/三目
            声明并初始化整型变量，使用条件运算符实现：若>0则给flag赋值为1，否则赋值为0
            System.out.println(c); //5，发生短路了
            //演示||的短路
            boolean b4 = a<b || c++>2;
            System.out.println(b4); //true
            System.out.println(c); //5，发生短路了
        */

        /*
          4. 运算符的练习：赋值
            1) 声明一个整型变量，演示扩展赋值+=、-=、*=、/=、%=的效果
                //第一遍:
                    int a8 = 10;
                    a8 += 5;
                    System.out.println(a8); //输出结果为15
                //第二遍:
                    int b8 = 25;
                    b8 *= 4;
                    System.out.println(b8); //输出结果为100

            2) 声明short型变量s，演示简单赋值运算的自增10，演示扩展赋值运算的自增10
                //第一遍:
                    short s1 = 20;
                    s1 += 10;
                    System.out.println(s1); //输出结果为30
                //第二遍:
                    short s2 = 25;
                    s2 += 10;
                    System.out.println(s2); //输出结果为35
           参考代码：
            int a = 5;
            a += 10; //相当于a=(int)(a+10)
            System.out.println(a); //15
            a *= 2; //相当于a=(int)(a*2)
            System.out.println(a); //30
            a /= 6; //相当于a=(int)(a/6)
            System.out.println(a); //5
            short s = 5;
            //s = s+10; //编译错误，需强转，改为: s=(short)(s+10);
            s += 10; //相当于s=(short)(s+10)
        */

        /*
            5. 运算符的练习：字符串连接
                1) 声明整型变量age和字符串型变量name，输出字符串连接的结果
                    //第一遍:
                        int age1 = 20;
                        String name1 = "Hongyi";
                        System.out.println(age1 + name1);   //输出结果为"20Hongyi"
                2) 输出几个数据的拼接，演示字符串连接的同化作用
                    //第一遍:
                        int age2 = 25;
                        String name2 = "Devon";
                        String birth1 = "October/23/2024";
                        System.out.println(age2 + name2 + birth1);  //输出结果为"25DevonOctober/23/2024"
              参考代码:
                //演示字符串连接
                int age = 38;
                System.out.println("age="); //age=
                System.out.println(age); //38
                System.out.println("age="+age); //age=38
                System.out.println("我的年龄是"+age); //我的年龄是38
                System.out.println("我今年"+age+"岁了"); //我今年38岁了
                String name = "WKJ";
                System.out.println("name="+name); //name=WKJ
                System.out.println("大家好，我叫"+name); //大家好，我叫WKJ
                System.out.println("大家好，我叫"+name+"，今年"+age+"岁了"); //大家好，我叫WKJ，今
                年38岁了
                //演示同化作用
                System.out.println(10+20+""+30); //3030---------String
                System.out.println(""+10+20+30); //102030-------String
                System.out.println(10+20+30+""); //60-----------String
        */

        /*
            6.  运算符的练习：条件/三目
                1) 声明并初始化整型变量，使用条件运算符实现：若>0则给flag赋值为1，否则赋值为0
                    //第一遍:
                        int num1 = 5, num2 = 5;
                        int flag = num1 == num2 ? 1 : -1;
                        System.out.println(flag);   //输出结果为1
                2) 声明两个整型变量，使用条件运算符实现：求这两个变量的最大值
                    //第一遍:
                        int num3 = 4, num4 = 5;
                        int flag1 = num4 > num3 ? 5 : 4;
                        System.out.println(flag1);   //输出结果为5
               参考代码:
                int num = 5;
                int flag = num>0?1:-1;
                System.out.println(flag); //1
                int a=8,b=5;
                int max = a>b?a:b;
                System.out.println("max="+max);
         */

        /*
            7. 分支结构的练习：if
                1) 满500打8折
                    //第一遍:
                        double price1 = 550.0;
                        if (price1 >= 500) {
                            price1 *= 0.8;
                        }
                        System.out.println(price1); //输出结果为440.0
                2) 判断成绩是否合法
                    //第一遍:
                        int score1 = -100;
                        if ((score1 >= 0) && (score1 <= 100)) {
                            System.out.println(score1 + "为合法成绩");
                        }          //输出结果为无
               参考代码:
                //满500打8折:
                double price = 300.0; //消费金额 带数(600.0,300.0)
                if(price>=500){ //满500
                price *= 0.8; //打8折
                }
                System.out.println("最终消费金额为:"+price);
                //判断成绩是否合法
                int score = 555; //带数(95,-5,555)
                if(score>=0 && score<=100){
                System.out.println("成绩合法");
                }
                System.out.println("继续执行...");
         */

        /*
            8. 分支结构的练习：if...else
                1) 满500打8折，不满500打9折
                    //第一遍:
                        double price2 = 600.0;
                        if (price2 >= 500) {
                            price2 *= 0.8;
                        } else {
                            price2 *= 0.9;
                        }
                        System.out.println(price2); //输出结果为480.0

                2) 判断成绩合法还是不合法
                    //第一遍:
                        int score2 = 99;
                        if ((score2 >= 0) && (score2 <= 100)) {
                            System.out.println(score2 + "为合法成绩");
                        } else {
                            System.out.println(score2 + "为不合法成绩");  //输出结果为99为合法成绩
                        }
               参考代码:
               //满500打8折，不满500打9折:
               double price = 300.0; //带数(600.0,300.0)
               if(price>=500){ //满
               price*=0.8;
               }else{ //不满
               price*=0.9;
               }
               System.out.println("最终消费金额为:"+price);
               //判断成绩合法还是不合法
               int score = 95; //带数(95,-5,555)
               if(score>=0 && score<=100){
               System.out.println(score+"是合法成绩");
               }else{
               System.out.println(score+"是不合法成绩");
               }
         */

        /*
            9.  分支结构的练习：if...else if
                1) 满2000打5折，满1000不满2000打7折，满500不满1000打8折，不满500打9折
                    //第一遍:
                        double price3 = 5000.0;
                        if (price3 >= 2000) {
                            price3 *= 0.5;
                        } else if (price3 >= 1000) {
                            price3 *= 0.7;
                        } else if (price3 >= 500) {
                            price3 *= 0.8;
                        } else {
                            price3 *= 0.9;
                        }
                        System.out.println(price3); //输出结果为2500.0
             参考代码：
                //满2000打5折，满1000不满2000打7折，满500不满1000打8折，不满500打9折:
                double price = 6000.0; //带数(2000.0,1000.0,600.0,300.0)
                if(price>=2000){
                price*=0.5;
                }else if(price>=1000){
                price*=0.7;
                }else if(price>=500){
                price*=0.8;
                }else{
                price*=0.9;
                }
                System.out.println("最终消费金额为:"+price);
         */
    }
}
